The invention relates generally to improved methods of echo cancellation. Specifically, the invention improves upon the efficiency of echo cancellation by providing a dynamic allocation of echo cancellation resources, thus allowing for increased capacity of multi-channel echo canceler integrated circuits (ICs).
Referring to FIG. 1, a prior art network, such as a telephone network is shown wherein an echo y(n) is generated when a far end signal x(n) crosses a hybrid local loop telephone termination 100. The path through termination 100 will hereinafter be referred to as the echo path, and its impulse response will be referred to as the echo path impulse response. xe2x80x98nxe2x80x99 is used herein to refer to the index of the samples of the signal.
Methods of echo cancellation in networks are well known. Generally, an echo canceler device 300 receives signal x(n) as an input and computes an estimate ŷ(n) of the echo, y(n). In general, the estimate ŷ(n) at time instant n is determined by multiplying the current and past L-1 samples by L filter coefficients, respectively. The output from the echo canceler 300 is input to an adder 200 which outputs the difference between the estimated echo ŷ(n) and the signal s(n) which consists of the echo y(n) together with the near end signal, v(n), and the near end background noise, w(n).
When the coefficients correspond to those of the impulse response of the true echo path, the echo is canceled. However, the echo path is initially unknown and in addition may change over time. Therefore the filter coefficients are iteratively adjusted to adapt to the echo path""s current response. To this end, the output of the adder 200 is fed back to the processor running the adaptive algorithms 375. In each sample period, new coefficients are computed, resulting in a new estimate of the echo path impulse response.
The DTD (an abbreviation for Double Talk Detector) shown in block 400, detects when both the far and near end speech are present simultaneously. In this event, the signal y(n) is not strictly the echo of x(n) but rather the combination of the echo, a near end speech signal and some noise. In this event, new coefficients should not be computed for filter 350 since they would be wrong. DTD 400 detects the double talk condition and instructs the echo canceler to continue to compute an estimate of the echo but not to adapt the coefficients.
The estimate of the echo, ŷ(n), is generally derived as follows: Assume a sampling rate of 8 kHz and an echo path impulse response of duration 64 ms. Then the number of coefficients, L, that must be adapted, is 512. Echo canceler device 300 comprises a processor executing a filter 350 and an adaptive algorithm 375. The aim of the adaptation algorithms is to make the coefficients of the filter 350 equal to the corresponding coefficients of the actual impulse response of the echo path. Filter 350 performs a convolution of x(n) with the estimated impulse response by multiplying each filter coefficient with its corresponding sample of the far end signal, x(n) (the current sample x(n) and the previous L-1 samples), and adding all the L products. The result is the echo estimate ŷ(n).
As currently designed, adaptive echo cancelers compute new coefficients and an echo estimate ŷ(n) at each sampling instant. Currently, network echo canceler integrated circuits (ICs) are designed to process, for example, 32 channels. Thus, in the above example, the echo canceler IC must update 512 coefficients and perform a 512 tap convolution for each of the 32 channels every 1/8000 of a second, or 125 xcexcs. It is desirable to increase the efficiency of echo cancelers such that an IC can handle a larger number of channels.
The subject invention provides a new echo cancellation method for voice signals which increases the computational efficiency of present-day echo cancelers such that a single echo canceler IC can handle a larger number of voice channels. This is accomplished by determining the active taps of the impulse response (i.e., those taps that have coefficients with significant magnitudes) and updating the filter coefficients only for the active taps and only when the short term power of the error signal e(n), which is the difference between the estimated echo and the actual echo, is greater than a predetermined threshold. If the error is below the predetermined threshold the filter continues to perform a convolution with the active taps using previously determined coefficients. Furthermore, additional efficiency for line echo cancelers is realized by advantageously performing the coefficient updates and convolution in only those intervals where the short time power of x(n) is above a specified threshold.